package com.ruoyi.mqtt.factory;

import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.data.es.domain.SensorData;
import com.ruoyi.data.es.service.SensorDataService;
import com.ruoyi.data.tdengine.domain.Sensor;
import com.ruoyi.data.tdengine.service.SensorService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.List;
import java.util.TimerTask;

/**
 * 异步工厂（产生任务用）
 *
 * @author ruoyi
 */
public class AsyncFactory
{
    private static final Logger logger = LoggerFactory.getLogger("AsyncFactory");

    /**
     * 记录传感器数据
     *
     * @param data 传感器数据
     * @return 任务task
     */
    public static TimerTask saveData2ElasticSearch(final List<SensorData> data)
    {
        return new TimerTask()
        {
            @Override
            public void run()
            {

                // 插入数据
                for (SensorData entity: data){
                    logger.info("同步数据");
                    SpringUtils.getBean(SensorDataService.class).save(entity);
                }
            }
        };
    }

    /**
     * 记录传感器数据
     *
     * @param data 传感器数据
     * @return 任务task
     */
    public static TimerTask saveData2Tdengine(final List<Sensor> data)
    {
        return new TimerTask()
        {
            @Override
            public void run()
            {

                // 插入数据
                /*
                for (Sensor entity: data){
                    logger.info("同步数据");
                    SpringUtils.getBean(SensorService.class).insert(entity);
                }

                 */
                SpringUtils.getBean(SensorService.class).insertBatch(data);
            }
        };
    }

}
